package com.kgcx.price.domain;


import com.kgcx.common.annotation.dict.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import javax.persistence.Id;
import javax.persistence.Transient;
import java.math.BigDecimal;
import java.sql.Timestamp;


/**
 * CaculationRule 报价规则类
 *
 * @author:zml
 * @date:2017/11/07
 */
@Data
@ApiModel(value = "TPriceCaculationRule", description = "报价规则类")
public class TPriceCaculationRule {
    @ApiModelProperty(value = "主键ID", name = "kid", example = "1")
    @Id
    private Long kid;
    @ApiModelProperty(value = "规则名", name = "ruleName")
    private String ruleName;
    @ApiModelProperty(value = "城市（存储用户系统维护的城市ID）【必填】", name = "cityId", required = true)
    private Integer cityId;
    @ApiModelProperty(value = "车辆类型 1：公务轿车 2：商务6座 3：豪华轿车 【必填】", name = "carType", required = true)
    private Integer carType;
    @ApiModelProperty(value = "套餐价格", name = "packagePrice")
    private BigDecimal packagePrice;
    @ApiModelProperty(value = "基础时长【必填】", name = "commonTime")
    private Integer commonTime;
    @ApiModelProperty(value = "基础里程【必填】", name = "commonMileage")
    private BigDecimal commonMileage;
    @ApiModelProperty(value = "里程费(每公里)【必填】", name = "unitpricepermile")
    private BigDecimal unitpricepermile;
    @ApiModelProperty(value = "时长费(每分钟)【必填】", name = "unitpriceperminute")
    private BigDecimal unitpriceperminute;
    @ApiModelProperty(value = "超里程费", name = "overMileage")
    private BigDecimal overMileage;
    @ApiModelProperty(value = "超时长费", name = "overTime")
    private BigDecimal overTime;
    @ApiModelProperty(value = "远途费(每公里【必填】)", name = "farAwayPrice")
    private BigDecimal farAwayPrice;
    @ApiModelProperty(value = "出城费(每公里)【必填】", name = "outTownPrice")
    private BigDecimal outTownPrice;
    @ApiModelProperty(value = "夜间服务费(23:00 - 6:00) ", name = "nightPrice")
    private BigDecimal nightPrice;
    @ApiModelProperty(value = "起步价【必填】 ", name = "startFee")
    private BigDecimal startFee;
    @ApiModelProperty(value = "路桥费 ", name = "roadPrice")
    private BigDecimal roadPrice;
    @ApiModelProperty(value = "停车费 ", name = "parkPrice")
    private BigDecimal parkPrice;
    @ApiModelProperty(value = "其他费用 ", name = "otherPrice")
    private BigDecimal otherPrice;
    @ApiModelProperty(value = "类型 1：常规价 2：套餐价 3：一口价【必填】 ", name = "type")
    private Integer type;
    @ApiModelProperty(value = "类型 1：常规价 2：套餐价 3：一口价【必填】 ", name = "type")
    @Dict(type = "fateType", fieldName = "type")
    @Transient
    private String typeValue;
    @ApiModelProperty(value = "营运早高峰时间起 HHmm", name = "morningpeaktimeon")
    private String morningpeaktimeon;
    @ApiModelProperty(value = "营运早高峰时间止 HHmm", name = "morningpeaktimeoff")
    private String morningpeaktimeoff;
    @ApiModelProperty(value = "营运晚高峰时间起 HHmm", name = "eveningpeaktimeon")
    private String eveningpeaktimeon;
    @ApiModelProperty(value = "营运晚高峰时间止 HHmm", name = "eveningpeaktimeoff")
    private String eveningpeaktimeoff;
    @ApiModelProperty(value = "运价有效期起 YYYYMMDDhhmmss", name = "farevalidon")
    private BigDecimal farevalidon;
    @ApiModelProperty(value = "运价有效期止 YYYYMMDDhhmmss", name = "farevalidoff")
    private BigDecimal farevalidoff;
    @ApiModelProperty(value = "高峰时间单程加价单价 ", name = "peakunitprice")
    private BigDecimal peakunitprice;
    @ApiModelProperty(value = "高峰时间单程加价公里 ", name = "peakpricestartmile")
    private BigDecimal peakpricestartmile;
    @ApiModelProperty(value = " 状态 101:启用 102:禁用 103:删除 ", name = "status")
    private Integer status;
    @ApiModelProperty(value = "创建时间 ", name = "createTime")
    private Timestamp createTime;
    @ApiModelProperty(value = "创建人 ", name = "createBy")
    private String createBy;
    @ApiModelProperty(value = "更新时间 ", name = "updateTime")
    private Timestamp updateTime;
    @ApiModelProperty(value = "更新人 ", name = "updateBy")
    private String updateBy;
    @ApiModelProperty(value = "计价规则介绍 ", name = "remark")
    private String remark;
    @ApiModelProperty(value = "审批状态 0：待审批 1：审批完毕 2：审批不通过 ", name = "examineStatus")
    private Integer examineStatus;
    @ApiModelProperty(value = "夜间服务费收取开始时间【必填】 ", name = "nightPriceStartTime")
    private String nightPriceStartTime;
    @ApiModelProperty(value = "夜间服务费收取结束时间【必填】 ", name = "nightPriceEndTime")
    private String nightPriceEndTime;

    @Transient
    @ApiModelProperty(value = "起步里程", name = "starMile")
    private Integer starMile;

    @Transient
    @ApiModelProperty(value = "单程加价单价", name = "upPrice")
    private Integer upPrice;

    @Transient
    @ApiModelProperty(value = "单程加价公里", name = "upPriceStartMile")
    private Integer upPriceStartMile;

    @Transient
    @ApiModelProperty(value = "其他营运高峰时间起 HHmm", name = "otherPeakTimeOn")
    private String otherPeakTimeOn;

    @Transient
    @ApiModelProperty(value = "其他营运高峰时间止 HHmm", name = "otherPeakTimeOff")
    private String otherPeakTimeOff;

    @Transient
    @ApiModelProperty(value = "高峰时间单程加价单价", name = "peakUnitPrice")
    private Integer peakUnitPrice;

    @Transient
    @ApiModelProperty(value = "低速计时加价（按分钟）", name = "lowSpeedPricePerMinute")
    private Integer lowSpeedPricePerMinute;

    @Transient
    @ApiModelProperty(value = "夜间费（按分钟）", name = "nightPricePerMinute")
    private Integer nightPricePerMinute;


}